package homework.day01;

import java.io.File;
import java.io.FileFilter;

/**
 * @Classname: HomeWork01
 * @Author: bromide
 * @CreateTime: 2022/3/28--19:18
 * @Version: V1.0
 * @Desciption: 列出当前目录中所有名字包含s的子项。
 * <p>
 * 使用匿名内部类和lambda两种写法
 */
public class HomeWork01 {
    public static void main(String[] args) {
        /** 方法一*/
        /*File dir = new File("./");
        if (dir.isDirectory()){
            File[] subs = dir.listFiles(new FileFilter() {
                @Override
                public boolean accept(File file) {
                    return file.getName().contains("s");
                }
            });
            System.out.println("一共有"+subs.length+"个文件满足条件");
            for (int i = 0; i < subs.length; i++) {
                System.out.println(subs[i].getName());
            }
        }*/
        /** 方法二 lambda 表达式 */
        /*File dir = new File("./");
        if (dir.isDirectory()){
            File[] subs = dir.listFiles (file-> file.getName().contains("s"));
            System.out.println("一共有"+subs.length+"个文件满足条件");
            for (int i = 0; i < subs.length; i++) {
                System.out.println(subs[i].getName());
            }
        }*/
        /** 完成注释 */
        // 建立一个指定一个file文件夹
        File dir = new File(".");

        //将满足过滤器的文件名传给File数组 subs


        //判断这个File对象dir是否是一个文件夹
        if (dir.isDirectory()) {
            File[] subs = dir.listFiles(new FileFilter() {
                public boolean accept(File file) {
                    //判断文件名字是否包含s   若包含，则传入subs数组中，不包含则不传入
                    return file.getName().contains("s");
                }
            });
            //遍历输出满足条件的文件夹名称
            for (int i = 0; i < subs.length; i++) {
                //获取file数组中的每个元素获取名称并输出
                System.out.println(subs[i].getName());
            }
        }
    }
}
